#include "Bullet3Geometry/b3ConvexHullComputer.h"
#ifdef __cplusplus
extern "C" {
#endif
b3ConvexHullComputer::Edge* bullet_Newb3ConvexHullComputerEdge(){
	b3ConvexHullComputer::Edge* wrap_out = new b3ConvexHullComputer::Edge();
	return wrap_out;
}

b3ConvexHullComputer::Edge* bullet_b3ConvexHullComputerEdge_getNextEdgeOfFace(b3ConvexHullComputer::Edge* c_this){
	b3ConvexHullComputer::Edge const * c_out = c_this->getNextEdgeOfFace();
	b3ConvexHullComputer::Edge* wrap_out = (b3ConvexHullComputer::Edge*)(void*)(c_out);
	return wrap_out;
}

b3ConvexHullComputer::Edge* bullet_b3ConvexHullComputerEdge_getNextEdgeOfVertex(b3ConvexHullComputer::Edge* c_this){
	b3ConvexHullComputer::Edge const * c_out = c_this->getNextEdgeOfVertex();
	b3ConvexHullComputer::Edge* wrap_out = (b3ConvexHullComputer::Edge*)(void*)(c_out);
	return wrap_out;
}

b3ConvexHullComputer::Edge* bullet_b3ConvexHullComputerEdge_getReverseEdge(b3ConvexHullComputer::Edge* c_this){
	b3ConvexHullComputer::Edge const * c_out = c_this->getReverseEdge();
	b3ConvexHullComputer::Edge* wrap_out = (b3ConvexHullComputer::Edge*)(void*)(c_out);
	return wrap_out;
}

int bullet_b3ConvexHullComputerEdge_getSourceVertex(b3ConvexHullComputer::Edge* c_this){
	int c_out = c_this->getSourceVertex();
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_b3ConvexHullComputerEdge_getTargetVertex(b3ConvexHullComputer::Edge* c_this){
	int c_out = c_this->getTargetVertex();
	int wrap_out = (c_out);
	return wrap_out;
}

b3ConvexHullComputer* bullet_Newb3ConvexHullComputer(){
	b3ConvexHullComputer* wrap_out = new b3ConvexHullComputer();
	return wrap_out;
}

float bullet_b3ConvexHullComputer_compute(b3ConvexHullComputer* c_this,float* coords,int stride,int count,float shrink,float shrinkClamp){
	float const * c_arg_coords=(float const *)(void*)(coords);
	int c_arg_stride=stride;
	int c_arg_count=count;
	b3Scalar c_arg_shrink=shrink;
	b3Scalar c_arg_shrinkClamp=shrinkClamp;
	b3Scalar c_out = c_this->compute(c_arg_coords,c_arg_stride,c_arg_count,c_arg_shrink,c_arg_shrinkClamp);
	float wrap_out = (c_out);
	return wrap_out;
}

float bullet_b3ConvexHullComputer_compute1(b3ConvexHullComputer* c_this,double* coords,int stride,int count,float shrink,float shrinkClamp){
	double const * c_arg_coords=(double const *)(void*)(coords);
	int c_arg_stride=stride;
	int c_arg_count=count;
	b3Scalar c_arg_shrink=shrink;
	b3Scalar c_arg_shrinkClamp=shrinkClamp;
	b3Scalar c_out = c_this->compute(c_arg_coords,c_arg_stride,c_arg_count,c_arg_shrink,c_arg_shrinkClamp);
	float wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
